home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-06-28 | 2.5 KB | 101 lines | [TEXT/CWIE] |
- // FileLocation.h
-
- #ifndef FileLocation_h
- #define FileLocation_h
-
- #ifndef VolumeID_h
- #include "VolumeID.h"
- #endif
- #ifndef DirectoryID_h
- #include "DirectoryID.h"
- #endif
- #ifndef ConstPString_h
- #include "ConstPString.h"
- #endif
- #ifndef FileType_h
- #include "FileType.h"
- #endif
- #ifndef FileSignature_h
- #include "FileSignature.h"
- #endif
- #ifndef ScriptID_h
- #include "ScriptID.h"
- #endif
- #ifndef FileID_h
- #include "FileID.h"
- #endif
- #ifndef Directory_h
- #include "Directory.h"
- #endif
-
- class PString;
-
- class FileLocation: public FSSpec
- {
- private:
- static void ThrowError( OSErr );
-
- public:
- FileLocation();
- FileLocation( const FSSpec& source ) : FSSpec( source ) {}
-
- FileLocation( Directory );
- FileLocation( Directory, ConstPString );
-
- VolumeID Volume() const { return VolumeID::Make( vRefNum ); }
- DirectoryID ParentID() const { return DirectoryID::Make( parID ); }
- Directory Parent() const { return Directory( Volume(), ParentID() ); }
- ConstPString Name() const { return name; }
-
- void Set( Directory, ConstPString );
- void operator=( Directory );
-
- void SetVolume( VolumeID v ) { vRefNum = v.RefNum(); };
- void SetParentID( DirectoryID d ) { parID = d.Number(); };
- void SetParent( Directory d ) { vRefNum = d.Volume().RefNum(); parID = d.ID().Number(); };
- void SetName( ConstPString );
- void SetName( ConstPString, uint32 );
-
- Directory AsDirectory() const;
-
- bool NameIsValid() const;
- void SetToValidName( ConstPString );
- void SetToValidName();
-
- bool operator==( const FileLocation& ) const;
- bool operator!=( const FileLocation& r ) const { return !(*this == r); }
-
- bool Exists() const;
- void FindUnusedName();
-
- void CreateFile( FileType,
- ScriptID script = ScriptID::Make( smSystemScript ) ) const;
-
- void CreateFile( FileType,
- FileSignature,
- ScriptID script = ScriptID::Make( smSystemScript ) ) const;
-
- Directory CreateDirectory( ScriptID script = ScriptID::Make( smSystemScript ) ) const;
-
- void Delete() const;
- void Lock() const;
- void Unlock() const;
-
- void MoveFrom( const FileLocation& ) const;
- void SwapWith( const FileLocation& ) const;
-
- bool IsRoot() const { return ParentID() == DirectoryID::AboveRoot(); }
-
- void Up();
- void Down( ConstPString );
- void Sideways( ConstPString );
-
- FileLocation Child( ConstPString ) const;
- FileLocation Sibling( ConstPString ) const;
-
- DirectoryID GetDirectoryID() const;
- FileID GetFileID() const;
- };
-
- #endif
-